# torchvision 是 PyTorch 生态系统中的一个库，专门用于处理图像和视频数据。
# transforms 模块是 torchvision 中的一个子模块，提供了各种图像变换和预处理操作，用于数据增强、数据标准化和数据转换等任务。
# 使用 transforms 模块，你可以轻松地对图像数据进行各种常见的变换，如裁剪、缩放、翻转、旋转、归一化等。
# 首先使用 PIL 的 Image.open() 打开了一个名为 “image.jpg” 的图像文件。
# 然后，创建了一个 transform 对象，该对象通过调用 transforms.Compose() 函数将多个变换操作组合在一起。
# 接下来，通过传递图像到 transform 对象，执行了一系列的变换操作。
# 通过使用 transforms 模块，你可以方便地对图像进行预处理和数据增强，从而为图像数据的训练和模型训练提供更好的效果。

from PIL import Image
from torchvision import transforms

# 打开图像文件
image = Image.open('image.jpg')

# 创建图像变换操作
transform = transforms.Compose([
    transforms.Resize((256, 256)),              # 调整图像大小为 (256, 256)
    transforms.RandomCrop((224, 224)),          # 随机裁剪图像为 (224, 224)
    transforms.RandomHorizontalFlip(),          # 随机水平翻转图像
    transforms.ToTensor(),                       # 转换为 PyTorch 张量
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # 标准化图像
])

# 进行图像预处理
processed_image = transform(image)

# 显示预处理后的图像张量
print(processed_image.shape)